This application relates to rendering 3D surfaces in a computer system.
Many computer graphics applications render complex three-dimensional (3D) surface geometries by iteratively refining simple, course 3D geometries, known as xe2x80x9cbase meshes.xe2x80x9d In general, base meshes are a collection of 3D vertices which are connected via triangular faces to represent a 3D surface. Each base mesh is a course approximation of a more complex, ideal 3D surface, known as a xe2x80x9climit subdivision surface,xe2x80x9d or xe2x80x9climit surface.xe2x80x9d
A computer creates an initial xe2x80x9csubdivision surfacexe2x80x9d from a base mesh by applying a computational kernel, known as a xe2x80x9csubdivision kernel,xe2x80x9d to the triangles and vertices in the base mesh. Repeated recursive application of the subdivision kernel yields increasingly smooth meshes that converge at the limit surface as the number of iterations approaches infinity.
Some subdivision techniques, known as xe2x80x9cuniformxe2x80x9d schemes, apply a given subdivision kernel to all base mesh triangles to achieve a particular subdivision depth. Other subdivision techniques, known as xe2x80x9cadaptivexe2x80x9d schemes, apply a given subdivision kernel that varies the depth of subdivision among the triangles in the mesh.
Both uniform and adaptive subdivision techniques employ two general types of subdivision algorithms. xe2x80x9cInterpolatingxe2x80x9d algorithms preserve points from one subdivision level to the next. xe2x80x9cApproximatingxe2x80x9d algorithms do not preserve points when subdividing the mesh, but rather create new points that approximate the points in the previous subdivision level. Approximating algorithms are used in many applications because they are relatively simple to implement, they result in smoother surfaces, and they allow the use of memory-efficient and computation-efficient data structures. Interpolating algorithms, on the other hand, offer a more intuitive approach to subdivision, produce fewer discontinuities in 3D surfaces when used with the xe2x80x9ccrack fillingxe2x80x9d features of adaptive subdivision schemes, and lead to more visually pleasing and intuitive implementations in geo-morphing applications.
In general, a computer system renders an image of a 3D surface by progressively displaying the points at the various subdivision levels and shading the 2D triangular surface components defined by the points. This often results in unsatisfactory visual effects, such as visible xe2x80x9cjumpsxe2x80x9d between the rendered images of adjacent subdivision surfaces, particularly when an approximating algorithm is used to create the subdivision surfaces. This rendering technique also requires a relatively large amount of computational and memory resources.
In rendering a 3D surface, a computer obtains an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces. The computer subdivides the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, and where each subdivision mesh includes more vertices than each preceding mesh. For each subdivision mesh, the computer applies a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface. The computer then renders an image of the projected surface for the subdivision mesh instead of rendering an image of the subdivision mesh itself. Other embodiments and advantages will become apparent from the following description and from the claims.
Other embodiments and advantages will become apparent from the description and claims that follow.